package com.bjsxt.config.snow;

import cn.hutool.core.lang.Snowflake;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author ALIENWARE
 * @version v1.0.0
 * @package : com.bjsxt.config.snow
 * @description :
 * 雪花算法 ID 生成器配置类
 * @create on : 12/26/2023
 **/
@Configuration
public class IdGenerateConfig {
    /**
     * 应用 ID 码
     */
    @Value("${id.workerId: 0}")
    private long workerId;
    /**
     * 机器 ID 码
     */
    @Value("${id.datacenterId: 0}")
    private long datacenterId;

    /**
     * 配置雪花算法
     *
     * @return 雪花算法
     */
    @Bean
    public Snowflake snowflake() {
        // 返回雪花算法
        return new Snowflake(workerId, datacenterId);
    }
}
